package main

import (
	"fmt"
	"sync"

	"time"
)

var wg sync.WaitGroup

// 全局变量的方式
var exit bool


func worker() {
	defer wg.Done()
	for {
		fmt.Println("worker")
		time.Sleep(time.Second)
		if exit{
			break
		}
	}
	// 如何接收外部命令实现退出

}

func main() {
	wg.Add(1)
	go worker()
	// 如何优雅的实现结束子goroutine
	time.Sleep(time.Second*5)
	exit=true //通过修改全局变量的方式通知子goroutine退出
	wg.Wait()
	fmt.Println("over")
}
